The user interface is an important part of any program that requires user interaction. Typical elements of a user interface include buttons, menus, dialog boxes and scroll bars. In addition to giving the user the ability to interact with a program, a user interface also serves to create an appropriate atmosphere for the user by, for example, displaying certain color schemes and background motifs.
User interfaces of various types have been around for decades. As computers have become more and more powerful, user interfaces have become increasingly complex. However, user interfaces still tend to be hard-coded into the programs that they serve. That is, most programs are designed so that the layout of the user interface is included as part of the same executable file as the rest of the program. Thus, it is very difficult, if not impossible, for individual users to customize their own interfaces, unless the program itself provides this functionality. Even then, a user is limited to making those changes in the user interface permitted by the program. The vendor of the program likewise has difficulty making changes to the user interface without editing the code of the program itself and releasing a new version of the program with the edits incorporated.